package main

import "fmt"

func main() {
	//声明方式1
	its1 := make([]int, 2, 5)
	fmt.Println(its1) //[0 0]
	//声明方式2
	its2 := make([]int, 2)
	fmt.Println(its2) //[0 0]
	//声明方式3
	its3 := new([]int)
	fmt.Println(its3) //&[]

	//方式1添加元素
	its1[0] = 100
	fmt.Println(its1) //[100 0]
	//方式2添加元素
	its2[0] = 100
	fmt.Println(its2) //[100 0]
	//方式3添加元素
	*its3 = append(*its3, 100)
	fmt.Println(its3) //&[100]

	//切片的截取
	s := []int{1, 2, 3, 4, 5}
	s1 := s[1:]
	// s1: [2,3,4,5]
	fmt.Println(s1)
	s2 := s[:len(s)-1]
	// s2: [1,2,3,4]
	fmt.Println(s2)
	s3 := s[1 : len(s)-1]
	// s3: [2,3,4]
	fmt.Println(s3)

	//切片的追加
	s = append(s, 6)
	// s: [1,2,3,4,5,6]
	//切记append是追加 如果已经初始化了切片 再去append 前面的值全是类型的初始值
	ss := make([]int, 3)
	ss = append(ss, 1)
	//ss: [0,0,0,1]
	fmt.Println(ss)
}
